from docx import Document
import re


def get_word_count_like_ms_word(docx_path):
    """
    获取与MS Word显示一致的字数统计（中文+标点）
    """
    doc = Document(docx_path)
    total_count = 0

    for para in doc.paragraphs:
        text = para.text

        # 移除页脚页数（如·1·、- 1 -、第1页等）
        text = re.sub(r'[·\-]\s*\d+\s*[·\-]|第\s*\d+\s*页','', text)

        # 移除换行符、制表符等特殊空白字符
        text = re.sub(r'[\s\t\n\r\u3000]', '', text)

        # 统计剩余所有字符（中文+标点）
        total_count += len(text)

    return total_count


# 使用示例
count = get_word_count_like_ms_word("建筑工程廉政协议20230228171235.docx")
print(f"Word字数: {count}")